/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package stud.cp.core.security;

import javax.ejb.Stateless;
import org.apache.log4j.Logger;
import stud.cp.core.dbaccess.DAOException;
import stud.cp.user.dbaccess.OracleDAOFactory;
import stud.cp.user.valueobjects.User;

/**
 * Бин, отвечающий за проверку данных пользователя.
 * @author Morfant
 */
@Stateless
public class SecurityManagerBean implements SecurityManagerLocal {

    /**
     * Фабрика DAO классов.
     */
    private OracleDAOFactory oracleDAOFactory = null;
    /**
     * Логгер.
     */
    private static Logger logger = Logger.getLogger("CPTNP");

    /**
     * Метод, проверяющий валидность данных пользователя.
     * @param user Пользователь.
     * @return Результат проверки.
     */
    @Override
    public boolean checkUser(User user) {

        try {
            oracleDAOFactory = new OracleDAOFactory();
            oracleDAOFactory.initialize();
            User checkUser = oracleDAOFactory.getUserDAO().getById(user.getUserID());
            if ((user.getUserID() == checkUser.getUserID())
                    && (user.getName().equals(checkUser.getName()))
                    && (user.getPassword().equals(checkUser.getPassword()))) {
                return true;
            } else {
                return false;
            }
        } catch (DAOException ex) {
            logger.debug("Error due access to database", ex);
        } finally {
            if (oracleDAOFactory != null) {
                try {
                    oracleDAOFactory.cleanUp();
                } catch (DAOException ex) {
                    logger.debug("Error due access to database. ", ex);
                }
            }
        }
        return false;
    }
}
